package panda_redis

import (
	"fmt"
	"gincli/global"
	"gincli/utils"
	"github.com/gin-gonic/gin"
	"time"
)

func SetRedis(c *gin.Context, key string, value string, t time.Duration) bool {
	if utils.IsNil(global.Redis) {
		global.Log.Error("请查检redis是否连接")
		panic("请查检redis是否连接")
	}

	expire := time.Duration(t) * time.Second
	if err := global.Redis.Set(c, key, value, expire).Err(); err != nil {
		return false
	}
	return true
}

func GetRedis(c *gin.Context, key string) string {
	if utils.IsNil(global.Redis) {
		global.Log.Error("请查检redis是否连接")
		panic("请查检redis是否连接")
	}
	result, err := global.Redis.Get(c, key).Result()
	if err != nil {
		return ""
	}
	return result
}

func DelRedis(c *gin.Context, key string) bool {
	if utils.IsNil(global.Redis) {
		global.Log.Error("请查检redis是否连接")
		panic("请查检redis是否连接")
	}
	_, err := global.Redis.Del(c, key).Result()
	if err != nil {
		fmt.Println(err)
		return false
	}
	return true
}

func ExpireRedis(c *gin.Context, key string, t int64) bool {
	if utils.IsNil(global.Redis) {
		global.Log.Error("请查检redis是否连接")
		panic("请查检redis是否连接")
	}
	// 延长过期时间
	expire := time.Duration(t) * time.Second
	if err := global.Redis.Expire(c, key, expire).Err(); err != nil {
		fmt.Println(err)
		return false
	}
	return true
}
